package com.dinghui.mybatis.utils;


import org.apache.commons.lang3.StringUtils;

import java.util.*;

public class Tools {

    /**
     * 获取UUID
     */
    public static String getUUID() {
        return UUID.randomUUID().toString().replaceAll("-", "");
    }

    /**
     * 数组转集合
     */
    @SafeVarargs
    public static <T> List<T> arrayList(T... params) {
        if(params != null && params.length > 0) {
            return Arrays.asList(params);
        }
        return null;
    }

    /**
     * 单个对象构建集合
     */
    public static <T> List<T> singletonList(T params) {
        if(params != null) {
            return Collections.singletonList(params);
        }
        return null;
    }

    /**
     * 字符串连接
     * @param separatorStr   连接分隔符
     * @param strs           字符串数组
     */
    public static String joinStr(String separatorStr, String str1, String str2, String... strs) {
        if(separatorStr == null) separatorStr = "";
        StringBuilder sb = new StringBuilder();
        sb.append(str1).append(separatorStr).append(str2);

        if(strs != null && strs.length > 0) {
            sb.append(separatorStr);

            for(String str : strs) {
                sb.append(str).append(separatorStr);
            }
            if(StringUtils.isNotEmpty(separatorStr)) {
                sb.delete(sb.length() - 1, sb.length());
            }
        }
        return sb.toString();
    }

    /**
     * 判断空
     */
    public static boolean isNull(Object obj) {
        return obj == null;
    }

    /**
     * 字符替换
     */
    public static String replace(String srcStr, String oldStr, String newStr) {
        return srcStr.replace(oldStr, newStr);
    }

    /**
     * 地址转换
     * <br />
     * 本地转线上可访问的地址
     */
    public static <K, V> V putMapIfAbsent(Map<K, V> map, K key, V val) {
        map.putIfAbsent(key, val);
        return val;
    }
}
